package xyc.szk.sjxy.filter;
/*
 * 作者：zjLiu
 * 日期：2021-05-19
 * 公司：数学与计算机学院
 */

import javax.servlet.*;
import java.io.IOException;
//配置过滤器拦截路径
//@WebFilter(value = "/*")  /* /-- /08*/
//@WebFilter(value={"/admin/add.jsp","/admin/del.jsp","/admin/edit.jsp"})
//@WebFilter(value="/*.jsp")   //注：这是匹配扩展名拦截路径 前面不能加 / 这种写法是错误的
//@WebFilter(value="*.jsp")   //注：这是匹配扩展名拦截路径 前面不能加 /
//@WebFilter(value="/admin/*")   //注：这是匹配目录拦截路径
//@WebFilter(value="/index.jsp")   //注：这是匹配具体的路径
public class DemoFilter01 implements Filter{
     private FilterConfig filterConfig;
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        this.filterConfig=filterConfig;
        //filter这个类实例化时会执行，整个filter生命周期中只会执行一次 它和servelt是一样一样的
        System.out.println("\"init\" = " + "init");
        System.out.println("filterConfig.getFilterName() = " + filterConfig.getFilterName());
        System.out.println("filterConfig.getInitParameter(\"encoding\") = " + filterConfig.getInitParameter("encoding"));
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("filterConfig.getFilterName() = " + filterConfig.getFilterName());
        System.out.println("this.filterConfig.getInitParameter(\"encoding\") = " + this.filterConfig.getInitParameter("encoding"));
        //这个方法是Filter这个类的核心方法，它会执行多次
        System.out.println("\"doFilter\" = " + "doFilter");
        //获取过滤 器初始化参数：

        //放行-即这次可以继续往下走
        filterChain.doFilter(servletRequest,servletResponse);

    }

    @Override
    public void destroy() {
        //tomcat服务器正常关闭
        System.out.println("\"destroy\" = " + "destroy");
    }
}
